home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / rwvector.lha / RWVector2.1 / src / mathpack / cfftb.f next >
Text File  |  1989-08-14  |  2KB  |  69 lines

  1. *deck cfftb
  2.       subroutine cfftb (n,c,wsave)
  3. C***BEGIN PROLOGUE  CFFTB
  4. C***REVISION DATE  811015   (YYMMDD)
  5. C***CATEGORY NO.  D6
  6. C***KEYWORDS FFT,FAST FOURIER TRANSFORM,INVERSE,INVERSE FFT,COMPLEX
  7. C***DATE WRITTEN  FEBRUARY 1978
  8. C***AUTHOR  SWARZTRAUBER P.N. (NCAR)
  9. C***PURPOSE
  10. C INVERSE FFT OF A COMPLEX PERIODIC SEQUENCE
  11. C***DESCRIPTION
  12. C     *****************************************************************
  13. C
  14. C     SUBROUTINE CFFTB(N,C,WSAVE)
  15. C
  16. C     *****************************************************************
  17. C
  18. C     SUBROUTINE CFFTB COMPUTES THE BACKWARD COMPLEX DISCRETE FOURIER
  19. C     TRANSFORM (THE FOURIER SYNTHESIS). EQUIVALENTLY , CFFTB COMPUTES
  20. C     A COMPLEX PERIODIC SEQUENCE FROM ITS FOURIER COEFFICIENTS.
  21. C     THE TRANSFORM IS DEFINED BELOW AT OUTPUT PARAMETER C.
  22. C
  23. C     A CALL OF CFFTF FOLLOWED BY A CALL OF CFFTB WILL MULTIPLY THE
  24. C     SEQUENCE BY N.
  25. C
  26. C     THE ARRAY WSAVE WHICH IS USED BY SUBROUTINE CFFTB MUST BE
  27. C     INITIALIZED BY CALLING SUBROUTINE CFFTI(N,WSAVE).
  28. C
  29. C     INPUT PARAMETERS
  30. C
  31. C
  32. C     N      THE LENGTH OF THE COMPLEX SEQUENCE C. THE METHOD IS
  33. C            MORE EFFICIENT WHEN N IS THE PRODUCT OF SMALL PRIMES.
  34. C
  35. C     C      A COMPLEX ARRAY OF LENGTH N WHICH CONTAINS THE SEQUENCE
  36. C
  37. C     WSAVE   A REAL WORK ARRAY WHICH MUST BE DIMENSIONED AT LEAST 4N+1
  38. C             IN THE PROGRAM THAT CALLS CFFTB. THE WSAVE ARRAY MUST BE
  39. C             INITIALIZED BY CALLING SUBROUTINE CFFTI(N,WSAVE) AND A
  40. C             DIFFERENT WSAVE ARRAY MUST BE USED FOR EACH DIFFERENT
  41. C             VALUE OF N. THIS INITIALIZATION DOES NOT HAVE TO BE
  42. C             REPEATED SO LONG AS N REMAINS UNCHANGED THUS SUBSEQUENT
  43. C             TRANSFORMS CAN BE OBTAINED FASTER THAN THE FIRST.
  44. C             THE SAME WSAVE ARRAY CAN BE USED BY CFFTF AND CFFTB.
  45. C
  46. C     OUTPUT PARAMETERS
  47. C
  48. C     C      FOR J=1,...,N
  49. C
  50. C                C(J)=THE SUM FROM K=1,...,N OF
  51. C
  52. C                      C(K)*EXP(I*J*K*2*PI/N)
  53. C
  54. C                            WHERE I=SQRT(-1)
  55. C
  56. C     WSAVE   CONTAINS INITIALIZATION CALCULATIONS WHICH MUST NOT BE
  57. C             DESTROYED BETWEEN CALLS OF SUBROUTINE CFFTF OR CFFTB
  58. C***REFERENCES
  59. C***ROUTINES CALLED  CFFTB1
  60. C***END PROLOGUE  CFFTB
  61.       dimension       c(1)       ,wsave(1)
  62. C***FIRST EXECUTABLE STATEMENT  CFFTB
  63.       if (n .eq. 1) return
  64.       iw1 = n+n+1
  65.       iw2 = iw1+n+n
  66.       call cfftb1 (n,c,wsave,wsave(iw1),wsave(iw2))
  67.       return
  68.       end
  69.